using System;
using System.Collections.Generic;
using System.Text;

using System.ServiceModel;
using System.ServiceModel.Channels;
using PSE.Framework.Services.SecurityTokenService.Service.DataContracts;
using PSE.Framework.Service.ExceptionHandling;
using PSE.Framework.Common.Exceptions.FaultContracts;
using PSE.Framework.Service.Security.SecurityTokenService;

namespace PSE.Framework.Services.SecurityTokenService.Service.ServiceContracts
{
    /// <summary>
    /// WCF contract for a Secure Token Service
    /// </summary>
	[ServiceContract]
    [ExceptionShielding]
    public interface ISecurityTokenService
    {
        [FaultContractAttribute(typeof(GeneralFault))]
        [FaultContractAttribute(typeof(BusinessFault))]
        [OperationContract(Action = Constants.Trust.Actions.Issue, ReplyAction = Constants.Trust.Actions.IssueReply)]
		Message IssueToken(Message rstMessage);
    }
}
